package test1225;

public class Test09 {
    public static void main(String[] args) {
        // 已知：
        // f(0)=0;
        // f(1)=1;
        // f(n)=f(n-1)+f(n-2)(当n>1时)
        // 实现数列的第n项函数f(n)
        // 0、1、1、1、2、3、……，
        int result = f(20);

        int result2 = f2(20);

        int result3 = f4(5);

        System.out.println(result);

        System.out.println(result2);
        System.out.println(result3);
    }
    public static int f(int n){
       if(n==0){
           return 0;
       }
       if(n==1){
           return 1;
       }
       int a = 0;
       int b = 1;
       int c = 0;
       for(int i=2;i<=n;i++){
           c = a+b;
           a = b;
           b = c;
       }
       return c;
    }

   //递归调用

    public static int f2(int n){
        if(n==0){
            return 0;
        }
        if(n==1) {
            return 1;
        }
        return f2(n-1)+f2(n-2);
    }

    public static int f3(int n){

        if(n==1){
            return 1;
        }
        return n*f3(n-1);
    }
    public static int f4(int n){
        if(n==0||n==1){
            return 1;
        }
        if(n==1){
            return 1;
        }if(n==2){
            return 2;
        }
        int a = n;
        int b = n-1;
        int c = 0;
        for(int i=n;i>=3;i=i-2){
            c = a*b+c;
            a = a-2;
            b = b-2;
        }
        return c;
    }
}
